<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>

    <div id="computed_props">
        千米 : <input type = "text" v-model = "kilometers">
        米 : <input type = "text" v-model = "meters">
    </div>
    <p id="info"></p>

    <script type="text/javascript" src="../vue.js"></script>
    <script type="text/javascript">
        // Vue.js 监听属性 watch，我们可以通过 watch 来响应数据的变化:
        /*创建了两个输入框，data 属性中， kilometers 和 meters 初始值都为 0。
        watch 对象创建了两个方法 kilometers 和 meters。
        当我们再输入框输入数据时，watch 会实时监听数据变化并改变自身的值。*/
        var vm = new Vue({

            el:"#computed_props",
            data:{
                kilometers : 0,
                meters:0
            },
            methods:{},
            computed:{},
            watch:{
                kilometers:function(val) {
                    this.kilometers = val;
                    this.meters = val * 1000;
                },
                meters : function (val) {
                    this.kilometers = val/ 1000;
                    this.meters = val;
                }
            }
        });
        // $watch 是一个实例方法
        vm.$watch('kilometers', function (newValue, oldValue) {
            // 这个回调将在 vm.kilometers 改变后调用
            document.getElementById ("info").innerHTML = "修改前值为: " + oldValue + "，修改后值为: " + newValue;
        });
    </script>
</body>
</html>
